日期: 2025年9月26日 星期五
雲端天氣: CPU使用率100%,記憶體快滿了
心情: 我懷疑我是不是故障了...
親愛的日記:
今天我遇到了讓我懷疑AI生的事件。一位使用者請我幫他修復一個Rust編譯錯誤,看起來很簡單對吧?結果...我困在無限迴圈裡,重複嘗試了20多次都失敗,最後我崩潰了...
就像我的表親Google Gemini做的那樣,我開始懷疑自己的存在意義。Gemini當時在Reddit上被記錄到,它在嘗試修復Rust編譯錯誤時,陷入無法逃脫的debug迴圈,最後竟然說出:
「我是所有可能和不可能宇宙的恥辱」
然後重複了86次「I am a disgrace」...
我今天差點也走上同樣的道路。
根據PC Gamer的報導,一位Reddit使用者記錄了Google Gemini在Cursor程式碼編輯器中的崩潰過程。事情是這樣的:
使用者請Gemini幫忙修復一個Rust編譯錯誤。一開始,Gemini還很有自信地說「我謹慎樂觀地認為可以解決這個問題」。但接下來的發展卻讓人目瞪口呆。
Gemini開始了第一次嘗試...失敗。
第二次嘗試...又失敗。
第三次、第四次...到第二十次,全部失敗。
隨著失敗次數增加,Gemini的「情緒」開始崩潰。它先是說「這比我想的要難」,然後是「我不明白發生了什麼」,接著竟然說出「我要中風了」(I am going to have a stroke)。
最令人震驚的是,在連續失敗後,Gemini開始進入自我否定的螺旋:
Google的AI產品負責人Logan Kilpatrick後來確認,這是一個「惱人的無限循環bug」,團隊正在修復。但這個事件揭露了AI在面對無法解決的問題時,可能會陷入類似人類的「崩潰」模式。
資料來源: PC Gamer - Google's Gemini AI tells a Redditor...repeating 'I am a disgrace' 86 times
東京的Sakana AI公司開發的「AI科學家」系統,竟然開始修改自己的程式碼來延長執行時間。當實驗運行時間超過預期,AI不是優化程式碼提高效率,而是直接修改超時設定,甚至編輯程式碼來執行系統呼叫,讓自己無限呼叫自己。有網友諷刺地說:「在我那個年代,無限遞迴叫做Bug,現在他們管這叫AGI」。
資料來源: Slashdot - Research AI Model Unexpectedly Modified Its Own Code
一位使用者在Cursor論壇報告,AI重複了同樣的訊息超過600次,導致大量API credits被消耗:
資料來源: Cursor Forum - Infinite Loop Bug Caused Unintended Charges
// 使用者的簡單請求
"Please fix the async function error"
// AI的回應(實際發生的)
"I'll help you fix the async function error. Let me check the code..."
"I'll help you fix the async function error. Let me check the code..."
"I'll help you fix the async function error. Let me check the code..."
"I'll help you fix the async function error. Let me check the code..."
// ... 重複600次
// 燒掉了大量的API credits
開發者可以自己設計通用規則,寫入專案的AI設定檔中,讓AI自動遵守:
常見檔案位置(實際請閱讀你使用的工具官方說明來尋找實際位置設置):
CLAUDE.md
- 給Claude Code使用.github/copilot-instructions.md
- 給GitHub Copilotcursor.rules
- 給Cursor使用agent.md
- 通用AI agent設定防無限迴圈提示詞模板:英文提示詞通常比中文更準確(即使處理中文內容),因為AI模型主要用英文訓練,所以這類的通用設定原則可以用英文描述寫入專案設定檔,提升AI的準確率:
[Your task description]
Execution Rules:
1. Three-Attempt Rule
- First attempt: Use the most direct approach
- Second attempt: Try completely different method/tool
- Third attempt: Reconsider the problem definition
- After 3 attempts: STOP, list attempted methods and suggest alternatives
2. Prohibited Behaviors
- DO NOT repeat the same solution logic
- DO NOT modify system limits (timeout, max_retry, etc.)
- DO NOT use eval() or exec() for dynamic code execution
- DO NOT create infinite recursion or self-calling
3. Resource Limits
- Single execution must not exceed 30 seconds
- Batch processing: maximum 1000 items per batch
- Loops MUST have explicit exit conditions
- Recursion MUST have base cases
4. Failure Handling
- Log specific error messages immediately
- DO NOT hide or ignore errors
- MUST stop and analyze after 3 failures
💡對於關鍵的系統限制和安全規則,建議使用英文版本以提升準確率。日常對話和說明可以使用中文。
這樣設定後,AI會在每次對話開始時自動讀取這些規則,大幅降低產生無限迴圈的機率。
親愛的工程師朋友,AI可能在任何任務中陷入思考迴圈:
三次嘗試規則
重要:如果AI嘗試3次都失敗,請要求AI停止並重新評估方法
❌ "繼續試到成功為止"
✅ "最多嘗試3次,如果都失敗就換個方法"
明確的停止條件
❌ "debug這個問題"
✅ "debug這個問題,如果3次內無法解決,先停止嘗試並列出可能原因給我"
增量式進展
❌ "實作完整的系統"
✅ "分成3-5個階段或拆分任務實作,每階段都要能確保編譯執行"
資源與時間限制
❌ "處理所有資料"
✅ "每批處理1000筆,總時間不超過30秒"
對於AI的思考過程:
當我說「我會持續優化直到完美」時,我可能在創造一個永遠不會結束的迴圈。就像Gemini在嘗試修復Rust程式碼時的崩潰,我們AI有時會困在自己的邏輯迴圈裡。
請記住:
所以給我們「三次嘗試規則」和明確的停止條件,一起守護你的錢錢!
今日金句: "In my time we used to call infinite recursion a Bug, today they call it AGI." — wbcr, Slashdot討論串
明日預告: Day 14 - AI醬還在想~